package com.yuantu.judiciary.service;

import com.yuantu.judiciary.model.domain.InviteCodeDO;
import com.yuantu.judiciary.model.enums.OrganizationType;
import com.yuantu.judiciary.model.form.*;
import com.yuantu.judiciary.model.vo.*;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 套餐管理
 *
 * @author syw
 * @since 2023-08-11
 **/
public interface IVipInfoService {

    Boolean add(VipInfoForm form);

    Boolean modify(VipInfoForm form);

    Boolean delete(Long accountId, List<Long> id);

    List<VipInfoForm> list();

    VipInfoForm getAlipayApplet();

    List<VipInfoVO> getByType(OrganizationType type, Long accountId);

    Boolean verifyBuy(Long accountId);

    AccountVipInfoVO getPerson(Long accountId);

    PageVO<OrgVipVO> getOrganization(SearchEnterVipFrom form, Pageable pageable);

    OrgRecordVO getRecord(SearchEnterVipFrom form);

    PageVO<OrgRecordListVO> getRecordList(SearchEnterVipRecordFrom form, Pageable pageable);

    Boolean addRecord(AddVipRecordForm form);

    Boolean modifyRecord(ModifyVipRecordForm form);

    Boolean deleteRecord(Long accountId, List<Long> id);

    PageVO<VipRecordVO> listRecord(SearchAccountForm form, Pageable pageable);

    void addFreeSearchTimes (InviteCodeDO codeInfo, Long organizationId);

}
